scrolled window: Protect against nameless devices
authorMatthias Clasen <mclasen@redhat.com>
Thu, 15 Oct 2015 20:06:15 +0000 (16:06 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 15 Oct 2015 20:06:15 +0000 (16:06 -0400)
It seems that gdk_device_get_name() can return NULL.
We should not crash if that happens.

https://bugzilla.gnome.org/show_bug.cgi?id=756625

gtk/gtkscrolledwindow.c

index 814d165e82aab7969e84416f6dbd56c719d6daf9..e679c4f2da0c1bd9006d40aecc2264915ac6c71b 100644 (file)
@@ -1224,6 +1224,7 @@ captured_event_cb (GtkWidget *widget,
   GdkDevice *source_device;
   GtkWidget *event_widget;
   gboolean on_scrollbar;
+  const gchar *device_name;
 
   sw = GTK_SCROLLED_WINDOW (widget);
   priv = sw->priv;
@@ -1243,6 +1244,7 @@ captured_event_cb (GtkWidget *widget,
     return GDK_EVENT_PROPAGATE;
 
   input_source = gdk_device_get_source (source_device);
+  device_name = gdk_device_get_name (source_device);
 
   if (input_source == GDK_SOURCE_KEYBOARD ||
       input_source == GDK_SOURCE_TOUCHSCREEN)
@@ -1268,8 +1270,8 @@ captured_event_cb (GtkWidget *widget,
         }
       else if (input_source == GDK_SOURCE_PEN ||
                input_source == GDK_SOURCE_ERASER ||
-               strstr (gdk_device_get_name (source_device), "TrackPoint") ||
-               strstr (gdk_device_get_name (source_device), "DualPoint Stick"))
+               (device_name != NULL && strstr (device_name, "TrackPoint")) ||
+               (device_name != NULL && strstr (device_name, "DualPoint Stick")))
         {
           indicator_set_over (&priv->hindicator, TRUE);
           indicator_set_over (&priv->vindicator, TRUE);